package editor;

import java.io.*;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

/**
 * Clase Escritora, crea un archivo de texto y le imprime cadenas de caracteres. 
 * @author Javier Amorosi, Nehuen Antiman.
 */
public class Escritora {

	private File archivo;
	private FileWriter fichero;
	private PrintWriter pw;
 
 	/**
 	 * Constructor de la clase Escritora, se le asigna un nombre al archivo
 	 * a guardar que sera pasado por parámetro, y una ruta elegida a través de un menu JFileChooser.
 	 * @param nombre del nuevo mapa. 
 	 */
 	public Escritora(String nombre){
 		String aux = obtenerRuta();
 		aux = aux +"/"+nombre+".map";
 		archivo = new File(aux);
 	    try {
 	    	archivo.createNewFile();
 	    	fichero = new FileWriter(archivo);
 	    	pw = new PrintWriter(fichero);	
 	    } catch(IOException e ){
 	    	JOptionPane.showMessageDialog(null,"Error al crear archivo");
 	    }
 	} 	
 	
 	//Obtiene una ruta atravez de un menu JFileChoser donde se guardara el archivo.
 	private String obtenerRuta(){
 		String toR=null;
 		JFileChooser selector = new JFileChooser();
 		selector.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
 		int resultado = selector.showOpenDialog(selector);
 		if(resultado != JFileChooser.CANCEL_OPTION)	{
 			if(selector.getSelectedFile().isDirectory())
 				toR=selector.getSelectedFile().getAbsolutePath();
 			}
 		return toR;	
 	}
 	
 	/**
 	 * Imprime la cadena aux al archivo creado.
 	 * @param aux cadena a escribir en el archivo creado. 
 	 */ 	  
 	public void Escribir(String aux){
 		int i=0;
 		while(i<aux.length()) {
 			if(aux.charAt(i)==('\n'))
 				pw.println();
 			else
 				pw.print(aux.charAt(i));
 			  	i++;
 		}
 		pw.close();
 		try {
 			fichero.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
 	}

}
